/*
 * Copyright © 2021 http://www.hn-szzy.com/ All rights reserved.
 */
package com.xjh.basestudy.leetcode.understand.linkedlist;

/**
 * @author： 徐建华
 * @date： 2022/3/18
 * @description：
 * 概念：链表是一种物理存储单元上非连续、非顺序的存储结构，数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
 * 链表由一系列结点（链表中每一个元素称为结点）组成，结点可以在运行时动态生成。
 * 每个结点包括两个部分：一个是存储数据元素的数据域，另一个是存储下一个结点地址的指针域（最后一个节点的指针域为null）。
 * 原理理解：一个节点有两个属性，一个用来存储数据。另一个用来指向下一个节点：通过包含一个链表类型，也就是说，java中实现链表更像一个包含关系
 *
 * 链表分类：排列组合一共有8种
 * 单向链表，双向链表
 * 带头链表，不带头链表
 * 循环的，非循环的
 *
 * 难以理解的部分：
 * 1.为什么把listNode1赋值给head，然后改变listNode1,head也会变？
 */
public class ListNode {
    // val:存储数据的数据域
    int val;
    // next:存储下一个节点地址的域,因为每个节点都相当于一个ListNode类生成的对象，因此，next属性需要定义为ListNode类型。
    ListNode next;
    // 有参构造，创建节点时，直接输入节点的数据
    ListNode(int x) {
        this.val = x;
    }
}
